home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / perl5 / Debconf / Encoding.pm < prev    next >
Text File  |  2008-10-10  |  1KB  |  74 lines

  1. #!/usr/bin/perl
  2. # This file was preprocessed, do not edit!
  3.  
  4.  
  5. package Debconf::Encoding;
  6.  
  7. use strict;
  8. use warnings;
  9.  
  10. our $charmap;
  11. BEGIN {
  12.     no warnings;
  13.     eval q{    use Text::Iconv };
  14.     use warnings;
  15.     if (! $@) {
  16.         $charmap = `locale charmap`;
  17.         chomp $charmap;
  18.     }
  19.     
  20.     no warnings;
  21.     eval q{ use Text::WrapI18N; use Text::CharWidth };
  22.     use warnings;
  23.     if (! $@) {
  24.         *wrap = *Text::WrapI18N::wrap;
  25.         *columns = *Text::WrapI18N::columns;
  26.         *width = *Text::CharWidth::mbswidth;
  27.     }
  28.     else {
  29.         require Text::Wrap;
  30.         require Text::Tabs;
  31.         sub _wrap { return Text::Tabs::expand(Text::Wrap::wrap(@_)) }
  32.         *wrap = *_wrap;
  33.         *columns = *Text::Wrap::columns;
  34.         sub _dumbwidth { length shift }
  35.         *width = *_dumbwidth;
  36.     }
  37. }
  38.  
  39. use base qw(Exporter);
  40. our @EXPORT_OK=qw(wrap $columns width convert $charmap to_Unicode);
  41.  
  42. my $converter;
  43. my $old_input_charmap;
  44. sub convert {
  45.     my $input_charmap = shift;
  46.     my $string = shift;
  47.     
  48.     return unless defined $charmap;
  49.     
  50.     if (! defined $old_input_charmap || 
  51.         $input_charmap ne $old_input_charmap) {
  52.         $converter = Text::Iconv->new($input_charmap, $charmap);
  53.         $old_input_charmap = $input_charmap;
  54.     }
  55.     return $converter->convert($string);
  56. }
  57.  
  58. my $unicode_conv;
  59. sub to_Unicode {
  60.     my $string = shift;
  61.     my $result;
  62.  
  63.     return $string if utf8::is_utf8($string);
  64.     if (!defined $unicode_conv) {
  65.         $unicode_conv = Text::Iconv->new($charmap, "UTF-8");
  66.     }
  67.     $result = $unicode_conv->convert($string);
  68.     utf8::decode($result);
  69.     return $result;
  70. }
  71.  
  72.  
  73. 1
  74.